You just need to implement your more specific redirect first, before your "generic" redirect everything else directive.
For example:
RewriteCond %{HTTP_HOST} example\.net$ [NC]
RewriteRule ^en$ https://example.com/abc [L,R=301]
RewriteCond %{HTTP_HOST} example\.net$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
Aside...
RewriteCond %{HTTP_HOST} (w*)example\.net$ [NC]
The (w*)
prefix is superfluous here. This actually matches the domain <anything>example.net
- so it still "works", but is possibly more than you need?
If you only want to match example.net
or www.example.net
(as stated in your question) then change this condition to read:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.net$ [NC]
Or, to catch mistyped URLs if you have a wildcard subdomain:
RewriteCond %{HTTP_HOST} ^(w+\.)?example\.net$ [NC]