fill(4) is indeed a zero-dimensional array, i.e., typeof(fill(4)) == Array{Int64, 0} and can be accessed as fill(4)[], i.e., without giving any index. The corresponding functional form is getindex(fill(4)) which can be broadcasted:
(A more basic question is why your function is returning an array of 0-dimensional arrays. That sounds like it could be a usage mistake that you might want to correct, rather than fixing up the output.)
I would use stack(array) or only.(array). But I’ll echo others’ thoughts that perhaps one could avoid creating this unusual matrix representation in the first place…
There is no higher-dimensional non-concatenating constructor, but to some extent it can be worked around by wrapping the elements in one-element containers and concatenate those, e.g. the highly contrived