| 
                         To, co hledáte je asi podmínka v XPath, která vybere pouze prvek, který jste specifikoval prvním ComboBoxem. Mohlo by jít o něco takového: 
nastaveni.SelectNodes("/prehled_kategorii/kat[@id=" & <id kategorie> & "]/podkat")
Doporučuji však nepoužívat XmlDocument ale novější implementaci XML ve Visual Basicu - XDocument: 
Module VbNet
  Sub Main()
    Dim source = <?xml version="1.0" encoding="utf-8"?>
                 <prehled_kategorii>
                   <kat id="1" nazev="BBQ">
                     <podkat id="1" nazev="Pevné podpalovače"/>
                     <podkat id="2" nazev="Tekuté podpalovače"/>
                     <podkat id="3" nazev="Gelové podpalovače"/>
                     <podkat id="4" nazev="LAO"/>
                     <podkat id="5" nazev="Paliva do biokrbů"/>
                     <podkat id="6" nazev="Uhlí a brikety"/>
                     <podkat id="7" nazev="Ostatní sortiment"/>
                   </kat>
                   <kat id="2" nazev="Technické kapaliny">
                     <podkat id="1" nazev="Lihy"/>
                     <podkat id="2" nazev="Aceton"/>
                     <podkat id="3" nazev="Toluen"/>
                     <podkat id="4" nazev="Xylen"/>
                     <podkat id="5" nazev="Technické benzíny"/>
                     <podkat id="6" nazev="Lakové benzíny"/>
                     <podkat id="7" nazev="Petrolej D"/>
                     <podkat id="8" nazev="Petrolej techn."/>
                     <podkat id="9" nazev="Benzínové čističe"/>
                     <podkat id="10" nazev="Toluenové čističe"/>
                     <podkat id="11" nazev="Ostatní látky"/>
                     <podkat id="12" nazev="Ostatní směsi"/>
                   </kat>
                 </prehled_kategorii>
    ' kategorie
    source.<prehled_kategorii>.<kat>.ToList().ForEach(Sub(k) Console.WriteLine(k.@id & ": " & k.@nazev))
    Console.WriteLine()
    Dim index As Integer
    Console.WriteLine("Id: ")
    Integer.TryParse(Console.ReadLine(), index)
    ' podkategorie
    source.<prehled_kategorii>.<kat>.Where(Function(k) k.@id = index.ToString()).<podkat>.ToList().ForEach(Sub(p) Console.WriteLine(p.@id & ": " & p.@nazev))
    Console.ReadLine()
  End Sub
End Module
Ze souboru lze vytvořit instanci třídy XDocument pomocí metody XDocument.Load. Jak vidíte, kód se zjednoduší. Snadno získáte seznam kategorií (který můžete do ComboBoxu naplnit třeba přes vlasnost DataSource).  
' Form.Load
ComboBox1.DataSource = source.<prehled_kategorii>.<kat>
' ComboBox1.SelectedItemChanged
ComboBox2.DataSource = source.<prehled_kategorii>.<kat>.Where(Function(k) k.@id = DirectCast(ComboBox1.SelectedItem, XElement).@id).<podkat>
 Lze použít také indexer, ale ten ve Vašem případě použít nelze, protože id kategorií nekorespondují s jejich pořadími. Pro zajímavost však: 
source.<prehled_kategorii>.<kat>(2).<podkat>
 By vracelo podkategorie třetí (z pohledu pořadí umístění v DOM) kategorie. 
                        
                     |