On Marketo landing page, you will need to deactivate munchkin tracking and replace it with custom munchkin code.
All in all, no out of the box switch. Then is depends on the skills you can rely on in term of JS.
(Actually OneTrust can't do this on its own, you always need a Marketo-fluent developer to write a bit of JS.)
Actually on pages where Marketo forms are present, cookies run even before consent to collect personal data.
It's not so much that cookies "run."
When you run Munchkin.init() -- the timing of which is completely under your control on non-Marketo LPs, but requires custom code for Marketo-hosted LPs, as you can read in the link below -- then the cookie is set and the initial Visit Web Page activity is logged.
If you want to run Munchkin.init() only after a form is successfully submitted with the user's consent (or if their consent has been previously stored) you should run Munchkin.init() in a Forms API onSuccess event listener function. Be aware that you can't immediately redirect someone to another page if you're doing work in the onSuccess; you have to pause to make sure the work is complete first.
In addition, if someone has already consented but opens an email on a new device, [a] they'll have an associated web session but [b] you won't immediately have the values from their Marketo lead record. So you will probably want to fetch those values into the page.
Further reading on these points: Conditionally loading Munchkin on Marketo LPs (for GDPR & related policies) and of course Form Pre-Fill for Any Form.