An empty array does not contain an explicit null, and so won’t be replaced with the null_value.

A query for NULL returns document 1, but not document 2.

The null_value needs to be the same datatype as the field. For
instance, a long field cannot have a string null_value. String fields
which are analyzed will also pass the null_value through the configured
analyzer.