I'm sure the first sentence has preposition to.
I think the second sentence also has the preposition to, but it is wrong. Instead of to, for is the correct one. Why can't I to use to instead of for? Both sentences refer to place only. Am i right?
I am a native American speaker, and both choices seem natural to me. Both are common in speaking and writing, but according to Google ngrams (both British and American English) "to be late for" is more common overall, especially in writing. However, in British English, "late to school" is much less common, which is likely why it was considered wrong.