The transaction belongs to F2Pool. The inputs are mined coins . They themselves mined the block so they included their own 0 fee transaction in it. Other mining pools wouldn't have included that transaction in their block
Any fee they pay will come back to F2Pool anyway
IIRC there are a few other pools that do that too for their own transactions.
Kind of OT for this post but I think it would be good if someone could build the
what would have to be a lot of bloat and complexity into core and the protocol that would allow a 2nd mempool so to speak that only has 0 fee tx in it. People could still consolidate their small inputs when the main mempool was empty BUT their TX would not be filling up the main mempool. Want to conoldate but don't care when it really happens send a 0 fee with this flag and possibly some pool would pick it up. Would it be worth the program / logic bloat is tough to say but I think it would be nice. Not going to happen, but it would be nice.
-Dave