Existem vários problemas com sua implementação atual: você tem dois location / blocks e rewrite $new_request_uri last; é semanticamente incorreto.
A solução fácil é modificar o $request_uri executando um redirecionamento externo . Isso é confuso porque você precisa identificar apenas os URIs que não possuem um argumento mobileaction . Por exemplo:
if ($args !~* mobileaction) {
rewrite ^ $uri?mobileaction=toggle_view_mobile permanent;
}
A diretiva rewrite cuida de ? vs & e anexa automaticamente a lista de argumentos existente.
O bloco if pode ser colocado dentro do bloco location / ou acima dele.