It's my understanding that the following isn't correct.
Coalesce is documented to return the first non-null from the given arguments. I assume in this case it's to stop the actual split operating on a null.
The operation will return a list with an empty string as its sole element if your properties are null. If the coalesce is not used, the result of split(a, "|") with 'a is null' is a null value.
I would think which you use depends on your requirements. Do you prefer a null property or a property with a list containing an empty string.
You can experiment with the following cypher queries:
return split(coalesce(null, ""), "|") -> [""]
return split(null, "|") -> null