Каюсь, схалтурил (извините). Можно так:
var uls = document.getElementsByTagName('ul');
for (var i=uls.length-1; i>=0; i--) {
if (uls[i].innerHTML.search(/<li.*>/i) == -1)
uls[i].parentNode.removeChild(uls[i]);
Проверил, вроде работает.
Дополнение:
В любом случае, мне кажется со строкой быстрее будет чем с домом, хотя нагрузочного тестирования не проводил.