Hotspot queues get created at the top because there's also a generic Hotspot simple queue that applies traffic shaping to people that haven't logged in ye, its parameters are taken from the Hotspot profile. Simple queues for the users after login must be created above it since otherwise it would trigger first, and per user rate limits would never be applied.
Mikrotik seems to have taken the approach to insert new Hotspot queues at the very top of the simple queue list, rather than just above the generic Hotspot simple queue that would apply to the user, which would also be sufficient.
You can't do anything about that at all to truly fix the issue, you would have to write to support (not to this forum, but to
support@mikrotik.com) and petition for a change as a feature request
You _may_ be able to work around things by running scripts that re-arrange queues and are executed by the scheduler, but that's not a very clean solution as you'd have time between script runs where things are in the wrong order for your purposes.
Certain queue tree setups (such as queue trees that inherit directly from global-in and global-out) trigger before simple queues, so you could use queue trees instead to reliably override simple queues.
How viable either approaches are I'm not sure as you didn't describe what specifically you were trying to achieve, and why queue order is an issue for you.