Unless you add logic like @Srini84 as suggested you would need to do something else.
You could do something like this.
Add two (2) Crons:
Run every Monday at 12:15am using this Cron.
0 15 0 ? * MON *
Run on Day 1 of every month at 12:15am.
0 15 0 1 * ? *
Then create a Non-Working Days Calendar for every Monday so it doesn’t run the same day as Cron 1.
See this post on how to make a Non Working Days calendar.
Where as your example above looks [to me] more like a Cron Expression with a [shell] command that is providing a logical OR that than should also have && to to run the intended command.
I recently had a similar [more] complex scenario than is currently capable where the scheduling requirement was to Run daily except for the last 2 business days of each month. So that means if Monday was the last business day of the month, it would not run Thu, Fri, Sat, Sun, Mon which is not in the capabilities of the current implementation.
The rule is simple enough that we could Tell it to run daily and than use non-working day calendar that has been forecasted out a couple years, but eventually we will need to review that calendar and it wouldn’t work for more complex scenarios (Know what Business days are, or managing exclusions at the hour/minute level and not just whole days).
It’s at a point that we are looking at implementing another module that can be included in the init of a project that would check an external source for a more flexible expression to determine if it should run or not. In addition to that an external coordinator / scheduler that can populate Non-working Day Calendars dynamically as well as more adhoc dynamic Triggers. Its a bit more overhead, but the currently the flexibility is not there unless you add the logic into your processes.
Unfortunately you need to have the Day of Month or Day of Week designation as a ? to be accepted by Orchestrator