What does this gr.float_to complex does ?
"Convert 1 or 2 streams of float to a stream of gr_complex"
So, you connect two float streams into a float_to_complex block, and you get a gr_complex (nothing but a complex number) out.
It's not specific to I/Q processing. You can just use it for anything which has two channels of data and needs to be combined for further processing.