I did a search on this and found several topics that were not helpful, one that was but was closed because it was old, and later searches just spun forever. Sorry if this is a repeat but I couldn't find anything helpful.
We just recently upgraded to version 3.5.3 from 3.3.5. The upgrade kept failing while creating question categories. I dug into the code to see what it was doing and realized that, after several attempts, the poorly written code was adding top-level categories to top-level categories. I remarked out that section and the upgrade completed. However, we now have over 10K top-level records that are a child of another top-level category. What would happen if I deleted the extras using an SQL command and reassigning the child to the very top-level top-level category?
Here's how it appears in the GUI.