NULLs are tricky. They are never equal to, not equal to, IN or NOT IN anything. So this predicate:
WHERE CP_LOT_STATUS NOT IN ('PL','RE')
is neither true nor false when cp_lot_status is NULL - it evaluates to NULL. The query only returns rows where all predicates evaluate to TRUE.
As for what you could do - well, just remove that predicate, it was redundant anyway:
SELECT * FROM CP_LOTS_GENERATED
WHERE CP_LOT_STATUS IS NULL;