Yep, hated them nested queries, but how often to you actually change/add/remove forums?
My answer, very few... So doing queries to do this for every user wasnt really an option.
So what I did, was built a multidimensional array with the db id's in php and save it somewhere (I used a plaintext file). You can store it under other mechanisms, but I just wanted something simple.
So anytime I needed the id's of parent/child forums. I would load up this cache file, and quickly grab the entries for the db.