Depending on your MySQL version IN() is slow or slower, see "The unbearable slowness of IN()" at
http://www.artfulsoftware.com/queries.php.
A join will perform faster, though yours won't work without revision since 'inner' and 'outer' are MySQL reserved words.
A join will still be slow if the table's indexes aren't adequate. To find out, run ...
EXPLAIN EXTENDED
select o.articlenumber
from temp_tag as o
LEFT JOIN temp_tag AS i
ON o.articlenumber=i.cont
and i.heading is not null
and i.heading <> ''
and i.publishdate='2011-10-20'
and i.type = 'story'
and i.cont <> 0
WHERE i.cont IS NULL;
in the mysql client, and post the result here inside
BBCode code tags for human readability.
PB