MySQL EXPLAIN gives more rows then the COUNT with WHERE on the indexed col
The difference between what EXPLAIN output shows and the actual number of rows returned by the query means your table statistics are out of date. The explain plan displays the estimated number of rows it thinks the engine will need to read. As the manual says, 


  MySQL explains how it would process the statement


(emphasis mine). Strictly speaking, the database engine cannot possibly know how many rows it needs to process until it actually processes all of them.

You can run the ANALYZE TABLE command to update statistics; EXPLAIN might be able to better estimate how many rows would be read.