I'm afraid there is no functionality built into 3CX to achieve this. There is something you could probably do that might work, but, as it is not the intended design I would not recommend it unless you MUST somehow implement this behavior and it involves only a single extension or a very small number of extensions:
• Create a Ring Group for the extension you want this call flow.
• Add the extension to the Ring Group.
• Edit the Extension and go to Forwarding Rules.
• Select either DND or Away and set internal calls to go to the Ring Group and External calls to wherever you want them to go.
• Enable the "Accept Ring Group calls"
• Go back to the Users/Extensions view and set that extension to the Profile Status you configured DND or Away.
Internal calls will be routed to the Ring Group and the extension will actually receive the call because of the "Accept calls from Rung Groups" option. External calls will be routed directly to the destination specified. This will of course work as long as the extension in question is that particular profile status. I again have to warn you though that since this is not a conventional setup I would not recommend it unless absolutely needed. You'll definitely have some side effects such as missed calls that were not actually missed, call report/statistics that might not make sense, etc so please bear that in mind.
You might want to look into other methods such as utilizing exceptions. Exceptions can match calls based on the caller ID, so, if the caller ID for external calls always starts with the same digits, you could potentially match external calls using that. You could even apply
Caller ID reformatting to add some sort of prefix once the call comes in so that you can then guarantee the exception will be matched. This will of course affect all incoming calls though so you'll have to evaluate the situation and do what suits you best.