At the end of your query you have: the first ; shouldn't be there, it should be:
Code:
$rcmail_config['password_query'] = 'CREATE TEMPORARY TABLE userID (SELECT `id` FROM `virtual_users` WHERE `domain_id` =(SELECT `id` FROM `virtual_domains` WHERE `name` = %d) AND `user` = %l AND `password` = MD5( %o )); UPDATE `mail`.`virtual_users` SET `password` = MD5( %p ) WHERE `virtual_users`.`id` =(SELECT `id` FROM userID) LIMIT 1';
EDIT: Oops I just read your query a little bit closer and noticed that you trying to run 2 query, RoundCube only supports running 1 query.