try checking the matches between:
story_product_map.STORY_ID = news_storytest.story_id

you might find something you did not expect.

otherwise:

find out total number of rows.
then compare that to number of NEW_PRODUCT_LOCATION_ID rows that is not null

compare the two.

like:
select count(rownum)
from story_product_map;

then

select count(NEW_PRODUCT_LOCATION_ID)
from story_product_map
where NEW_PRODUCT_LOCATION_ID is NOT null;

let me know what you get.

- Magnus