A NOT EXISTS-style check asks whether a non-NULL match exists; the right-side NULL does not poison unrelated non-matches here.
NOT EXISTS contrast
Compare outputs
NOT IN outputs 0 rows, while the NOT EXISTS contrast outputs 4 rows.
NOT EXISTS rows=4
NOT IN examples are tiny finite WHERE-style filters with SQL-style TRUE/FALSE/UNKNOWN behavior; correlation, optimizer behavior, execution cost, indexing, SQL dialect completeness, and database-product claims are out of scope.
Contrast is scoped
This is a toy finite contrast, not a product rewrite rule.
scoped contrast
Summary
The contrast makes the NULL-list boundary visible.