OR keeps a row if at least one child predicate is TRUE. IS NULL checks NULL directly.
OR / NOT / IS NULL
Read OR and NOT outputs
The OR filter keeps 2 rows. NOT IS NULL keeps 3 rows.
OR kept=2
WHERE-filter examples are tiny finite-table transforms with SQL-style TRUE/FALSE/UNKNOWN logic; SQL dialect completeness, type coercion, optimizer behavior, indexing, and product claims are out of scope.
IS NULL is direct
IS NULL returns TRUE for the NULL cell; NOT IS NULL flips that result.
NOT(IS NULL)
Summary
OR widens a filter; NOT flips TRUE and FALSE while leaving UNKNOWN unknown.