On second thought, I think the original bug report is still valid. When the union returns no rows, list() returns a list of size 1 containing an empty list instead of returning null.
My mistake, I was confusing uniqueResult() with list(). The former returns null on no match, the latter returns an empty list. I agree with the current behavior. Closing this issue as INVALID.
My mistake. The Union was returning a list of size 1 where the nested element was an empty list. Closing this bug as invalid.