Il problema risiede nelle proprietà intrinseche del controllo per cui, come ti ha detto luca, l'evento Click funziona se nel ListBox ci sono degli elementi. Se non ci sono, l'evento Click non viene generato semplicemente perché non è stato cliccato nessun elemento.
Se infatti crei per il ListBox anche l'evento MouseDown e ci metti dentro PRINT ListBox1.List.Count, vedrai che, anche in caso di lista vuota, nel terminale viene correttamente stampato "0" non appena l'utente clicca sul controllo.
Quindi secondo me dovresti rivedere il codice portando il tuo algoritmo in quell'evento MouseDown, che si genera ogni volta che l'utente clicca sul controllo, indipendentemente se seleziona o meno un elemento, e da lì poi controllare se l'utente ha selezionato una canzone oppure ha cliccato in un'area vuota.