Tak, jest możliwe, ale nieco zamotane, gdyż musisz większość danych podać jawnie

Zakładając taką strukturę jaką podałeś będzie to wyglądało tak:
SELECT *, NULL AS kolumna_e, NULL AS kolumna_f FROM tabela_nr1
UNION
SELECT kolumna_a, NULL, NULL, kolumna_d, kolumna_e, kolumna_f FROM tabela_nr2
Taka składnia jest konieczna, ponieważ dla UNION ważna jest kolejność kolumn w pierwszej tabeli, gdyż to ona jest przedstawiana w wyniku. Jeśli luki będą inaczej, będziesz musiał wszystkie kolumny jawnie rozpisać, tak jak dla tabela_nr2. Niestety tak działa UNION i trzeba to zaakceptować. Przy UNION liczba kolumn w obu tabelach musi być identyczna i nazewnictwo kolumn wynikowych jest zgodne z tabelami w tabeli pierwszej, dlatego użyłem aliasów w tabela_nr1 by były zgodne z nazewnictwem w tabela_nr2, ale głównie tylko dla wygody, bo moglem je nazwać jakkolwiek. Mogłem w tabela_nr2 pominąć sobie także nazwanie ich jakkolwiek, bo nazwy kolumn przy UNION z drugiej tabeli są ignorowane przy wyniku i ważna jest tylko kolejność. Gdybym jednak najpierw chciał wyświetlić dane z tabela_nr2 to składnia zapytania wyglądała by tak:
SELECT kolumna_a, NULL AS kolumna_b, NULL AS kolumna_c, kolumna_d, kolumna_e, kolumna_f FROM tabela_nr2
UNION
SELECT *, NULL, NULL FROM tabela_nr1
W tym przykładzie kolumny są przemieszane z NULLami i konieczne jest jawne nazwanie ich by się nic nie porąbało Nam. W UNION niestety musimy uważać w jakiej kolejności jakie kolumny dajemy :/