The plugins you enable in the language detection configuration also contain the methods to build outbound paths and the language switcher links. The plugin for *Url* adds prefixes and not query strings. Others do, for example *Session* for anonymous users, so you probably have enabled a second detection method.