This is a historical quirk. The word comes from the French "colonel," where the "l" was pronounced. Over time, the pronunciation shifted in English, but the spelling remained the same.
So, while the letter "l" is there, it's not actually spoken. It's a bit like the "k" in "knife" or the "h" in "honor"!