Rows with FALSE or UNKNOWN do not pass the WHERE filter.
TRUE only output
Read output rows
With the NULL candidate list, NOT IN outputs 0 rows.
output rows=0
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.
Empty output is honest
The empty output comes from recomputed truth rows, not from a hand-written warning.
computed empty output
Summary
A NULL candidate can turn every non-matching row into UNKNOWN.