MySQL ORDER BY DESC is fast but ASC is very slow

I wouldn't suggest you create another index on the table; every time a row is inserted or deleted, each index on the table needs to be updated, slowing down INSERT queries.

The index is definitely what's slowing it down. Maybe you could try IGNORE-ing it:

SELECT posts.id
FROM posts IGNORE INDEX (published)
WHERE posts.feed_id IN ( 4953,622,1,1852,4952,76,623,624,10 )
ORDER BY posts.published ASC
LIMIT 0, 50;

Or, since the field is already KEYed, you might try the following:

SELECT posts.id
FROM posts USE KEY (published)
WHERE posts.feed_id IN ( 4953,622,1,1852,4952,76,623,624,10 )
ORDER BY posts.published ASC
LIMIT 0, 50;

Your index is sorted desc so when you ask for ascending it needs to do a lot more work to bring it back in that order