Здесь ключевое различие. В первом случае - это адрес внутренней страницы, который начинается со знака "?"
Во-втором случае - это вариант внешнего обращения
Интересное умозаключение. Откуда вы знаете, что разработчик заложил в своем скрипте, передавая в него данные через $_SERVER['QUERY_STRING']?
В обоих случаях на сайт зашел робот Яндекса:
141-8-142-38.spider.yandex.com
5-255-253-37.spider.yandex.com
Так попробуйте (если нужен POST, добавьте его после HEAD):
RewriteCond %{THE_REQUEST} ^(?:GET|HEAD)\ /([^\?]*)\?\ HTTP/RewriteRule ^.*$ https://site.ru/%1? [R=301,L]