To nie jest idealny model danych. Coś takiego powinno działać z wyjątkiem sytuacji, gdy wartość rozpoczynająca się od 'o_%' jest identyfikatorem elementu, a nie elementem.
To nie było testowane.
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