Если не имеет значения, удаляете ли вы пустые теги вообще, вы можете попробовать что-то вроде этого:
doc.css('p').each do |node|
node.remove if node.inner_text == ''
end
Не очень элегантно, но добавьте это перед вашим кодом, и вы не получите никакихпустые узлы в последующих запросах.