FWIW, the underlying problem of this bug should have been fixed on Impala 2.6.0 and beyond.
The problem is not with the logic in the scanner but more related to TextConverter and MemPool. Specifically, a zero-length allocation from MemPool() always returns NULL. In this case, since all rows of col2 contains an empty string (i.e. not NULL as the null indicator is "\N"), the overall 'row_group_length_' sums up to zero. Therefore, 'row_group_buffer_' will be NULL as MemPool::Allocate() will return NULL for zero-length allocation in the old code and that tricks TextConverter() into believing that the slot is NULL.
As part of commit 9ed3b685a109559fad8dd94f6c03af93e164305a, Allocate() will return a non-NULL dummy pointer for zero-length allocations. It was done to differentiate between allocation failure and zero-length allocations. It may be arguable whether TextConvertert::WriterSlot() is handling the case in which the parameter data being NULL well.