Prova così.

codice:
select *
from tabella
order by if(data >= curdate(),0,1), abs(datediff(data,curdate()))