Yes, you’re right. It is strange. $_SERVER[‘QUERY_STRING’] is available. The $_GET array is available. Yet, values in individual $_GET keys can’t be echo-ed.
The reason may be another plugin. Or something else on the page. Or a customization done with a template. Or something weird being typed into the Insert PHP code block, maybe a word processor formatting code.
You could try creating your own variables by parsing the $_SERVER[‘QUERY_STRING’] value. If you do that, the variables will need to be echo-ed in the same Insert PHP code block where they are created. (Generally, Insert PHP code blocks don’t talk to each other.)
Unfortunately, I’m unable to go further with this without hands-on testing. Insert PHP works fine for echoing $_GET key values in other installations. Therefore, the reason is most likely to be something about the WordPress installation or the way the Insert PHP code block is entered into the post or page.
Sorry I can’t go further with this.
Will