se entendi corretamente em caso de duplicata vc quer deletar o "FAIL" e não o "PASS" ? neste caso, você pode ter a seguinte consulta:
delete t2 from my_table1 as t1, my_table1 as t2 where
t1.TestCase = t2.TestCase and t2.id != t1.id and t2.Result='FAIL';
mas o que você quer fazer quando todas as duplicatas tiverem "FAIL" no resultado da coluna? Com a consulta acima, ambos serão removidos. Você quer manter um neste caso?