This sounds tautological, but it’s because there was a method for the latter and not the former. You can find out what method:

julia> @which Union{Int, Float64}(543.435)
(::Type{T})(x::T) where T<:Number
@ Core boot.jl:792

It does nothing though, effectively just letting dispatch check an instance is already of a given Number type: (::Type{T})(x::T) where {T<:Number} = x.

Note that there’s no method naming the particular Union (check methods(Union{Int, Float64})). That is possible but named supertypes like Number are more practical than the arbitrary Unions. Particular Unions important enough to get a const alias may be an exception, but I don’t have an example off the top of my head.