I have currently set my Core node to -prune=550, but I see that getblocktemplate returns data, so can one mine on the pruned node?
Yes, you can mine.
With only 550 blocks stored, how can/would a pruned node make sure that an input given by user to be signed in a block isn't a double spend? There'd be no way to check that on such a node, right?
(E: Although i think there's probably a mechanism for this, otherwise it wouldn't be able to verify any transactions at all.)
That's not how Bitcoin Core works. Pruned nodes are still full nodes. They have validated every block in the blockchain; they still validate and relay every single valid block and transaction they receive. They are, by definition, full nodes. The difference between pruning and not pruning is whether the node can serve historical blocks to new nodes coming online. Everything else is the same; they can be miners, they will still receive all blocks and transactions, etc. The UTXO data that is necessary for validation is not pulled from the block history, that would be rather slow. Instead, when a block is validated, the UTXOs are copied to a UTXO database and the UTXOs that were spent are removed from that database. Pruning still keeps that database and all of the UTXOs, so validation is still works.