Schon das selektieren der Kategorien sortiert.
Das ist völlig normal. Eine Datenbank ist immer mengenorientiert und innerhalb einer Menge gibt es keine Reihenfolge. Die Reihenfolge kann dann am Ende über ein ORDER BY erzwungen werden. Aber eine Reihenfolge der Datensätze gibt es nicht. Es sei denn in der Datenbank wird ein Timestamp abgelegt, der eben festhält wann der jeweilige Datensatz eingetragen wurde, dann kann das Ergebnis über diese Zeitangabe sortiert werden.