You need 2 new rules for handling category
. Try this code:
RewriteEngine On
#subdomain and folders
RewriteCond %{HTTP_HOST} !^subdomain\.mydomain.co.in [NC]
RewriteRule ^(.*)$ http://subdomain.mydomain.co.in/$1 [R=301,L]
#remove .php and ad slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://mydomain.co.in/subdomain/$1 [R=301,L]
RewriteCond %{THE_REQUEST} \s/+(category)\?id=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(category)/([^/.]+)/?$ /$1?id=$2 [L,QSA,NC]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://mydomain.co.in/subdomain/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]