For dine specifikke data kan du gøre:
order by (case when cat_type = 'free' then id*1.0
else 2*id - 7.5
end)
Det virker meget mystisk. Hvis du har et mere generelt problem, bør du stille et andet spørgsmål, der giver en bedre beskrivelse af, hvad du virkelig ønsker at opnå.