Помните, что RewriteRule соответствует только вашему URI и никогда не будет соответствовать имени хоста или строке запроса.Вот правильный способ сделать то, что вы пытаетесь сделать:
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{QUERY_STRING} ^cat=(.*)$
RewriteRule ^olddomain\.php$ http://www.newdomain.com/firstdir/seconddir/? [L,R=301,NC,NE]