I always use concatenate where viable. Generally it results in far better performance.
You will by definition end up with the nulls you mention, but this should [hopefully] not cause any showstopper issues.
What I also often do is is add an extra field called Source and put into it the some text that identifies which source table that data came from, as sometimes that is need for Set Analysis in some use cases and can useful for diagnostics as yo can see what data came from where.
Have tried the concatenation ?
If so, did it work ok for your use case ?