@ruben.romero You can try something like this with the GetElementCount Method
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
cats = doc.Settings.Categories
used_cat = []
unused_cat = []
for cat in cats:
#if cat.CategoryType == CategoryType.Model or cat.CategoryType == CategoryType.Annotation:
cate = Revit.Elements.Category.ById(cat.Id.IntegerValue)
count = FilteredElementCollector(doc).OfCategoryId(cat.Id).WhereElementIsNotElementType().GetElementCount();
if count>0:
used_cat.append(cate)
else:
unused_cat.append(cate)
OUT = used_cat, unused_cat