можно ли с помощью одного запроса все это сделать?
Можно. Если при составлении таблицы id будет выполнять ту функцию, которую должен, а не ту ерунду, которая у тебя.
Вот скажи, если у тебя этот твой $id=52, то тебе где надо отсечь?
И про ORDER BY почитай, не зря тебе говорят.
В таблице не бывает "выше и ниже" без условия. Видишь ли, это ты решил, что "ниже" - это если id, идущие после 55. Это бред. Всегда, если хочется говорить о "выше" и "ниже", надо говорить о сортировке по какому-то полю. Тебе надо добавить еще одно уникальное поле. Или этот "id" пересмотреть.