Eu não sei o que QtGui.QDesktopServices.openUrl
faz, mas eu suspeito strongmente que ele abre uma URL em um aplicativo apropriado comunicando-se com algum daemon do KDE através da sessão X11, não lançando um navegador diretamente como filho de si mesmo. Você pode verificar isso observando o ID do processo pai do navegador resultante. Devido a isso, não importa qual UID seu script tenha mudado - apenas o uid do daemon é importante.
Executar sessões X11 como root geralmente é uma má ideia. Posso sugerir a execução de uma sessão do X11 como um usuário comum e ter apenas o seu script Python executado como root (somente se for verificado e somente se você realmente precisar)?