Judging from this list, not very often:
Why is this the case? I would have guessed they would have been more frequent.
Is it OK to always accept (small-to-medium) transactions as valid then?
But the short answer is that's the reason most participants wait for at least 6 confirmations before accepting a transaction as valid. The likelihood of hash collisions or other potential attacks having any success going undetected drops with each confirmation, and 6 confirmations is usually chosen as an "overkill" number.
To answer your question from the post title, though, refer to this question's answers:
If what they say is correct, it seems we really don't know if and when (or how often) any double-spends have actually been successful.