You would receive nulls if either:
a) The data was actually null in those columns and the Join worked as expected;
b) The join to one of the data inputs did not yield a match based on common key(s). So, for example, Input 1 populated columns 1-10, Input 2 populated columns 11-20 and Input 3 populated columns 21-30, if columns 21-30 were null, then a key match was not found between Input 1 and 3. Obviously, if you are using Inner Join, this should not happen......

I think that is one problem with the look up stage, Null = Null. I your reference is a DB you can use NVL or Coalesce to change the Null keys to something that will never match or just exclude those in a where clause. If its not a DB used in the reference then use a transformer to change the nulls.