umm... why would you delete a row that isn't there? if $post_id is the next mySQL auto-increment value, nothing will be deleted. You'd need to use the same value that you inserted with....
As for leaving the 10 comments, if you're adding 1 to the current comment, and deleting 1, would the number change? I guess you could try this:
IF( (SELECT COUNT(*) FROM `table` WHERE post_id='$post_id')>10, (DELETE FROM `table` WHERE id=(SELECT MIN(id) FROM `table` WHERE post_id='$post_id')), null)
Not sure if that will work, but it gets you going... if it doesn't work, just take the if() out, and do it via PHP:
if(mysql_num_rows(mysql_query("SELECT COUNT(*) FROM `table` WHERE post_id='$post_id'"))>10)
{
mysql_query("DELETE FROM `table` WHERE id=(SELECT MIN(id) FROM `table` WHERE post_id='$post_id'");
}