The modify-argument + replace-type is limited to the few cases we have discovered in the Qt API, so I'd not expect to work in that regard, mainly because there is no way to handle an expression with a std::initializer_list, inside the typesystem for Qt Core you can see a : <rejection class="*" argument-type="^std::initializer_list<.*$"/>, meaning pyside doesn't support it.
I think the only solution will be for you to create your own replace-type functions, or create a different signature for 'Query' that accept something else, and internally call the constructor with the initializer_list<QPair.....