все просто ошибка в тз
вы думаете что RewriteRule может работать c GET, а он в свою очередь не является частью урла
как следствие вам нужно его выделять другим образом ;)
RewriteCond %{QUERY_STRING} (^|&)id\=(.+)($|&)
RewriteRule ^index\.php$ /%1/? [L,R=301]
%2 - вторая групаа из RewriteCond