Судя по этому
вопросу в mysql не будет работать уникальность по двум столбцам если один из них null. Я дальше в эту сторону не копал и сделал так. Уникально только поле slug и хранится в виде parent_parent_..._parent_slug/.../parent_slug/slug. Да когда нужно обновить slug нужно доставать всех потомков и обновлять у них тоже это поле, но когда нужно прочитать запись что бы узнать полный slug не нужно доставать все предков