The solution by @jacobusmmsmit is probably the way to go. For completeness, here’s a way to rewrite your code to be shorter and arguably easier to read:
julia> combination_vectors(a, b) = vcat(([f s] for f in a for s in b)...)
combination_vectors (generic function with 1 method)
(@v1.7) julia> combination_vectors(a, b)
6×2 Matrix{Int64}:
1 4
1 5
2 4
2 5
3 4
3 5