Why does NULL + something or NULL * something give NULL result?
The reason is very simple. NULL is not a value, NULL is a state meaning "value is unknown".
So, if you say: 5 + unknown
What should be the result?
It's easy, the result is unknown, thus you get NULL.
This kind of logic can easily be applied to other cases, just think of NULL as 'unknown'.
Usual workaround for this is to use the COALESCE function which turns null into something useful for you.