Yes, the fees for mixing transactions are paid in a separate transaction (see
Creating Collaterals and
Mixing Fees). Presumably miners would prioritize mixing transaction higher than 0-fee transactions since the mixing fees are well defined in the Dash Core source. In your case, perhaps some miners are choosing not to mine 0-fee transactions even if there is available block space? That is just speculation though.
Possibly. There is nothing inherently special about the structure of mixing transactions (vs. "regular" transactions). It is broadcast using a different message, but that is the only difference (you can't technically determine from a block explorer whether a transaction was a real PrivateSend mix or just someone structuring a transaction to look like one). The miner is always the one to ultimately determine what transactions are included in a block. That applies whether the blocks are full or not.