NULL is its own value
NULL means the value is absent, and it is not zero, not an empty string, not false. Any comparison against NULL is itself unknown, so = NULL never matches and <> NULL never matches either. That is why a filter for missing data returns nothing when you write it the intuitive way.
NULL spreads through math
Any arithmetic on NULL gives NULL. NULL + 1 is NULL, not 1. So a SUM over a column with blanks ignores the blanks, but a per-row expression touching a blank turns the whole result blank. When you need a stand-in, COALESCE turns a blank into a value you choose before the math runs.