Your conditions should mean rewrite if not already /subdir
but it is doing reverse.
Try this:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(subdir|favicon\.ico)
RewriteRule ^ subdir/index.php [L]