Se me ocurre que extraigas primero de tu tabla de productos las categorias que contienen productos coincidentes con tu búsqueda, algo como
Código sql:
Ver originalSELECT DISTINCT CatId FROM imported_data_copy WHERE ProdName LIKE '%manolo%'
Guardas los ids devueltos en un array. Luego, al ejecutar tu función recursiva, antes de re-ejecutar la función, vez si la categoría que deseas "abrir" se encuentra en el array que has creado. Si no está, no la "abres".
Saludos,