....scusa la banalità ma...hai provato con un ulteriore "order by" ?
qualcosa del tipo:

select * from tab1 where id in
(select id from (select id, from tab2 where num = 1 order by ordinamento)) order by nome_campo