ok ora ho capito

Allora prendi il tuo ID e fai la cosa inversa a quanto sopra.

codice:
public string AlberoFigli = "";

public void CercaFigli(int ID)
{
    AlberoFigli = ID.ToString();
    // cerco l'eventuale Figlio del mio ID passato alla funzione
    SQL = "Select * from tabella where IDPadre = " + ID.ToString();
    // operazioni per leggere il DB
    // se il datareader ha dei risultati, ovvero il mio ID selezionato ha un figlio, richiamo nuovamente la funzione CercaFiglio col nuovo ID, altrimenti esco dalla funzione.
    if (dr.read())
    {
        // Concateno il figlio trovato
        AlberoFigli += ", " + dr["IDFiglio"].ToString();
        // vedo se ha a sua volta dei figli.
        CercaFigli(int.Parse(dr["IDFiglio"].ToString()));
    }
}
USCITO DALLA FUNZIONE AVRAI LA TUA VARIABILE AlberoFigli = "1, 4, 7, 8, 10".