The problem happened because QueryPath was getting nothing from the selector trying to get text from an anchor tag.
I was trying to get the text from a link/anchor from each table row.
However, the first row in my loop was a table header and not a row with any links.
Adding a check in the loop fixed my issue:
$url_ext = qp($row)->find('.ic_link_txt a')->attr('href');
if ( $url_ext != NULL && $url_ext != "" ) {
Which was a stupid mistake on my part not knowing enough about QueryPath.
(Also related to github issue https://github.com/technosophos/querypath/issues/130 )