SQL has:
TRUE FALSE UNKNOWN
Because NULL represents an unknown value.
So:
NULL = NULL
is UNKNOWN.
It is not TRUE because SQL cannot prove two unknown values are equal.
That shows up in filters:
WHERE column = 10
Rows where column is NULL do not pass, because the comparison is UNKNOWN.