LEFT OUTER JOIN-ing the same table, grouping, summing and finding 0 or NULL
I think you want this:

SELECT 
      s1.phrase, 
      COUNT(DISTINCT s1.id) AS count, 
      SUM(s2.results) AS sub_results
 FROM tbl_search s1
   LEFT OUTER JOIN tbl_search s2 ON s1.id = s2.original
 WHERE s1.results = 0
   AND s1.original IS NULL
 GROUP BY s1.phrase
 HAVING SUM(s2.results) = 0
     OR SUM(s2.results) IS NULL
 ORDER BY count DESC ;



The COUNT(DISTINCT s1.id) is because you may have more than one searches with same phrase (but different id).


Tested at SQLfiddle.



If you don't want to see the sub_results column, you can use the simpler:

SELECT 
     s1.phrase, 
     COUNT(*) AS count
FROM tbl_search s1
WHERE s1.results = 0
  AND s1.original IS NULL
  AND NOT EXISTS
      ( SELECT *
        FROM tbl_search s2 
        WHERE s1.id = s2.original
          AND s2.results &gt; 0
      )
GROUP BY s1.phrase
ORDER BY count DESC ;