This query worked for me with a slight change: the number 346 in your query is the ModuleID of the "Languages" module, but it can be a different value.
You can get the correct ModuleID with the following query:
SELECT * FROM Modules WHERE ModuleTitle = 'Languages'
Use the returned ModuleID in the query:
INSERT
INTO [dbo].[TabModules] ([TabID],[ModuleID],[PaneName],[ModuleOrder],[CacheTime],[Alignment],[Color],[Border],[IconFile],[Visibility],[ContainerSrc],[DisplayTitle],[DisplayPrint],[DisplaySyndicate],[IsWebSlice],[WebSliceTitle],[WebSliceExpiryDate],[WebSliceTTL]) VALUES([YOUR NEW ADMIN/LANGUAGE TABID],[YOUR LANGUAGES MODULEID],'ContentPane',-1,0,null,null,null,'~/images/icon_language_32px.gif',2,0,1,1,0,0,null,null,0)
That will correctly resolve the bug.
If you use a non-existing ModuleID (like 346 was for me) the Languages admin option will cause a server error. If this happened to you, update the row in TabModules with the correct ModuleID and refresh the module cache.