Then problem is that the PHP variable $amt contains the NULL value.
Look at what the resulting query is going to be:
UPDATE cg_tbl SET cg_amount='' WHRE cg_num='123'
You're not setting cg_amount equal to a NULL value, you're setting it equal to an empty string (something entirely different). Since float columns can't contain strings, the empty string is converted into a number - namely zero.
One problem is that you're using quotes for the values of numeric columns. The string '123.45' is not the same as the number 123.45!
As I said before, what you need to do is instead of setting the PHP variable equal to a NULL value, you should set it equal to the string "NULL". That would make your query look like:
UPDATE cg_tbl SET cg_amount=NULL WHRE cg_num=123
(notice that the erroneous quotes have been removed and that the values now make sense).