[SPARK-3363][SQL] Type Coercion should support every type to have null value

Type Coercion should support every type to have null value
Yes, in complex type they are different. For example what JSON cares are if the key strings are the same(MapType), which is quite different from here.