Операторы IS NULL и IS NOT NULL могут давать разные результаты при работе с булевыми значениями, потому что они работают по разным принципам сравнения значений NULL. 12
IS NULL возвращает true, если операнд равен NULL, и false — если не равен. 12
IS NOT NULL, наоборот, возвращает true, если значение операнда не равно NULL, и false — если равно. 12
Это связано с особенностью значения NULL, которое указывает на отсутствие значения. 4 При сравнении NULL с любым значением, даже с другим таким же NULL, результат будет ни true, ни false, он неизвестен. 4