The identify() function does not return the number of points near the pointer; it returns the index within the plotting vectors of the selected point. I do not know how it chooses a point if there is exact over plotting, as in your case.
For example, if you plot the following data
DF <- data.frame(Cert=c(3,4,5,6,7,8,9),Gender=c(2,3,4,5,6,7,8))
plot(DF$Cert,DF$Gender)
call identify() and click on the point at (5,4), identify() will return 3 because the chosen point is the third element in each of the vectors DF$Cert and DF$Gender.