Присвоить id в обратном порядке?
Никаким.
Если шаловливые ручки тянутся потрогать id, то это может означать только две вещи
- либо надо надавать по ручкам линейкой и объяснить владельцу, что уникальный идентификатор - это не цыферька для красоты, а идентификатор, намертво привязанный к строке в БД, который никогда не меняется, и умирает вместе с ней. 
- либо уникальный идентификатор для этой таблицы вообще не нужен, и его надо убрать
Интересная задача, для собеседований самое-то. Самый простой способ сджойнить по счетчику строк
Схема базыCREATE TABLE tmp (
  id INT,
  color VARCHAR(255)
);
ДанныеINSERT INTO tmp 
  (id, color)
VALUES 
  (1, 'зеленый'),
  (2, 'красный'),
  (3, 'синий'),
  (4, 'белый')
;
ЗапросSELECT id, color FROM (
  SELECT 
    id,
    @join_pk_1:=@join_pk_1 + 1 as join_pk
  FROM tmp, (select @join_pk_1:=0) as join_pk_1
  ORDER BY id DESC
) as tbl1
LEFT JOIN (
  SELECT 
    color,
    @join_pk_2:=@join_pk_2 + 1 as join_pk
  FROM tmp, (select @join_pk_2:=0) as join_pk_2
) as tbl2
ON tbl1.join_pk = tbl2.join_pk
Результатid 	color
4 	зеленый
3 	красный
2 	синий
1 	белый