Es ist kein ideales Datenmodell. So etwas sollte funktionieren, außer wenn ein Wert, der mit 'o_%' beginnt, eine element_id und kein Element ist.
Dies wurde nicht getestet.
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