MySQL: Unable To Create Generated Column With Expression That Uses DATE_ADD() Function
Mysql has done, what you ask of him.
here are more infomration

DATE_ADD(col1, INTERVAL col2 HOUR) is equal to (col1 + interval col2 hour)

And is set as Default Value for the column. so when you add a NULL you get  what ever (col1 + interval col2 hour) represents.

So you can't achieve a Nullable and generated Column at the same time.

If You need A NULL there, you have to generate the test column VALUE at runtime.