Hola
para los ul probaste esto?
Código PHP:
echo "<ul><li><a href='#'>".$value['nombre_categoria']."</a></li></ul>";
Ahora, tu dices esto
"O sea que solo logro listar las categoría y subcateorias y no veo la forma de poder listar los productos dentro de cada categoria o subcategoría."
pues en tu codigo no veo que estes consultando la tabla de los productos!
lo que tienes que hacer es lo mismo que estas haciendo con las categorias pero aplicado a los productos, obviamente haciendo en el select que hagas un WHERE para que busque por el id_categoria que este mostrando en ese momento, algo así
SELECT * from tabla WHERE campo = valor;
y pues esto iria dentro del foreach que ya tienes para que valor cambie cada vez que pasa de categoría
bueno, nos comentas
saludos