select count(1) as cantidadCategorias from (select c.categories_id
from categories c
where c.parent_id='24'
and c.categories_status='1'
and c.products_count_price > 0 union select cp.categories_id
from categories c
left join categories cp on cp.parent_id=c.categories_id
where c.parent_id='24'
and c.categories_status='1'
and cp.categories_status='1'
and cp.parent_id is not null
and c.products_count_price > 0
and cp.products_count_price > 0 union select cp2.categories_id
from categories c
left join categories cp on cp.parent_id=c.categories_id
left join categories cp2 on cp2.parent_id=cp.categories_id
where c.parent_id='24'
and c.categories_status='1'
and cp.categories_status='1'
and cp2.categories_status='1'
and cp2.parent_id is not null
and c.products_count_price > 0
and cp.products_count_price > 0
and cp2.products_count_price > 0 ) as cate