Dunque, ti servono più linguaggi, quello che ti posso rispondere qui è la parte in php.

Una idea puo' essere questa: (il codice non è funzionante è solo una base di logica di funzionamento)
Codice PHP:
SELECT FROM categoria

while($result){

 echo 
'link menu'

 
SELECT FROM sotto_categoria WHERE id_cat $result->id_cat
 
while($result2){
 echo 
'link sotto-menu'
 
}


Una seconda soluzione potrebbe essere questa, ma è più elaborata.
Codice PHP:
SELECT C.id_catSC.id_catSC.id_scat FROM categoria AS 
LEFT JOIN sotto_categoria 
AS SC ON C.id_cat SC.id_cat ORDER BY C.id_catSC.id_cat 

while($result){
 if(!
$result->id_scat){echo 'link menu'}
 if(
$result->id_scat){echo 'link sotto-menu'}

Per gli altri dettagli (CSS o Javascript...), qui siamo OT, chiedi nei forum dedicati...