Non è un modello di dati ideale. Qualcosa del genere dovrebbe funzionare tranne quando un valore che inizia con 'o_%' è un element_id e non un elemento.
Questo non è stato testato.
select t1.question_id
,case when t1.element_id not like 'o_%' then t1.element_id else '' end element_id
,case when t2.element_id like 'o_%' then t2.element_id else '' end element
from table t1
join table t2 on t1.question_id=t2.question_id