No puedes hacer esto usando solo funciones en cascada hasta donde puedo pensar.
Una solución limpia sería crear un oyente que se suscriba a preRemove
eventos. Luego puede verificar cuándo se elimina una categoría y encontrar todos los artículos de esa categoría que no tienen otras categorías y eliminarlos también.