It sounds like all those questiuons can be answered with : dictionary or JSON. You can create custom Resource class for all your categories ( like class_name category ) with exported dictionary. You can next make math, physics, biology and so on extend from this class and write questions and answers in their dictionaries in editor. This dictionary will propably have this type of structure, where key is a question and value is an answer ( unless You also want to provide a) b) c) answer options). It is unsure whether it will be comfortable to write all this text data in editor. You can always use GoogleSheet and write all text in chart ( Category, Question, Answer ), transform it into JSON, load it in Godot and make your game menager node iterate through resulting dictionaries instead of using resource class.
Both options have data structure where category is a big branch, that is divided into millions smaller branches - questions. So whenever a theme will be chosen, You will always be able to get questions only from this theme.
Both options will easily let You use just one scene. Menager node will randomly choose category, randomly choose question from that category, and check if typed answer is exactly the same as value paired to question in dictionary.