Roman, você precisa fazer uma junção externa completa em sua seleção para que, para qualquer ID de tipo de evento (e estou assumindo que você terá 0 ou 1 linha em suas tabelas passadas e futuras para qualquer ID de tipo de evento específico), você produzirá uma única linha e as datas nulas e não nulas apropriadas.
A primeira resposta não combinará as datas das duas fontes em uma única linha, que é o que acredito que você pediu.
A segunda resposta foi mais próxima, mas funcionaria apenas para linhas com datas passadas e futuras (ou seja:uma em cada tabela) devido à junção interna.
Exemplo:
insert into event_target (event_type_id, past_event_date, future_event_date)
select nvl(p.event_type_id, f.event_type_id), p.event_date, f.event_date
from
events_source_1 p full outer join
events_source_2 f on p.event_type_id = f.event_type_id
Observe que a função nvl é para Oracle e usará o primeiro não nulo que vir. ISNULL pode ser usado para SQL Server.