Day of month and day of week are OR. When both are set, the job runs if either matches — so 0 0 1 * 1 fires on the 1st and every Monday, not only on Mondays that fall on the 1st. If one of them is *, only the other applies.
Run times are worked out in this browser’s timezone. On the day a clock shifts for daylight saving, a time inside the skipped hour does not exist; real cron daemons disagree about what to do then, so treat those days as approximate.