Non puoi farlo usando solo funzionalità a cascata per quanto mi viene in mente.
Una soluzione pulita sarebbe quella di creare un listener che si iscrive a preRemove
eventi. Puoi quindi controllare quando una categoria viene eliminata e trovare tutti gli articoli di quella categoria che non hanno altre categorie e rimuovere anche quelli.