The following query should be something similar to what you want for this simple two level structure.
However it won't handle further nesting (but then neither did your original example)
Two thoughts on this
1 - Is this SQL slow? Is there a performance problem?
My guess would be no. You're dealing with miniscule data here. Why waste time optimizing when there isn't going to be any benefit construed from it?
Your efforts would be spent better elsewhere.
2 - Is a database the appropriate storage for this data?
However, I would recommend you rethink your strategy here.
Why is this information being stored in a database?
Why not just store it as a JSON file which can represent the nesting much easier?
Looking at that database table it is nigh on impossible to see the relationships between menu items.
Having it in XML/JSON keeps it in a human readable and easily understandable format, without having to impose these artificial parent/child relationships via foreign keys.
If you are trying to store an hierarchiacal structure in database there is no good database agnostic way of doing it. However, Oracle has a special clause called CONNECT BY that helps you traverse a hierarchical structure. Ask Tom can explain it much better that I can. Don't know if you have Oracle, but there it is.