O ponto de interrogação significa o final da porção do caminho do uri e o início da string de consulta. Portanto, por que nginx não retornará 404 com base na parte após o ponto de interrogação; o recurso solicitado existe e os parâmetros da string de consulta são passados para ele.
Em relação à outra parte da questão, acredito que a instrução de reescrita do nginx não corresponde realmente à porção da string de consulta do uri.
Você deve, no entanto, ser capaz de fazer algo nos moldes de:
if ($args ~ "format=feed&type=rss") {
rewrite ^ https://example.com/rss.xml? permanent;
}