Benoit de la Sayette, 18, failed the test shortly after he was shown in a film at a party where cocaine was used, with the Professional Jockeys' Association claiming it was a "malicious" video.
But De la Sayette failed a test days later when the British Horseracing Authority took samples.
On March 27, he won the Lincoln at Doncaster aboard Haqeeqy, with the drug party video being shared in the wake of the win.
"I can't apologise enough for my actions, both for taking cocaine and misleading those around me," he said.
The jockey, who was due to ride at Brighton on Saturday, has been suspended by the BHA until the conclusion of a disciplinary process.
The BHA arranged to take urine and hair samples on 31 March. The urine sample returned a negative test but the BHA said the hair sample was positive for metabolites of cocaine.
"Benoit has now admitted that he has previously taken cocaine and that he had initially not been as forthcoming as he ought to have been to those close to him and advising him," said the PJA.
"He maintains that the circulated video was from October 2019, that he did not take cocaine on that occasion and did not do so after winning the Lincoln."
In a statement, the jockey added: "There are no excuses and I am sorry for letting down my family, the team at Clarehaven Stables, my trainer John Gosden and my colleagues in the weighing room."