I got similar experiences. Qlikview "optimizes" incoming values. (In my oppinion this is a bug)
The funny thing is, it does not only reduce blanks, but it takes the first value with blanks as the "correct one", but at least you have two records. It's hard to explain,see my example - app.
And as you can also see, the text() - function works as expected.