I don't like the term "ALWAYS have to" in Korean grammar.
Instead, I like to use "usually tend to"
The basic idea is that
은 는 is used with familiar, expected situation
이 가 is used with unfamiliar, unexpected situation
1) 은 는 when I am introducing myself
You will use 은 는 because you are familiar with yourself.
저는 지민이에요. is a correct answer as an answer of 당신은 누구예요?(Who are you?)
제가 지민이에요. is a correct answer as an answer of 누가 지민이에요?(Who is Jimin?)
이쪽은 지민이에요. is a correct answer as an answer of 이쪽은 누구예요?(Who is this?)
이쪽이 지민이에요. is a correct answer as an answer of 어느쪽이 지민이에요?(Which is Jimin?)
2) 이 가 with 아니다.
You will use 이 가 with 아니다 because the fact that it is unexpected.
저는 한국 사람이 아닙니다.
저는 한국 사람은 아닙니다. It can be used with the nuance (Although, I look like a Korean,) I'm not a Korean.
나는 시간이 없어요!
나는 시간은 없어요! can be used with the nuance (Although, I have other things,) I don't have time.
는/은 and 가/이 both are used for the subject of a sentence but 는/은 introduces a topic or a subject whereas 가/이 identifies a subject.
In addition to their differences already explored above, here is another big difference between the two particles.
The topic particle, 는/은, is used in cases when we make a general or factual statement whereas 가/이 is not.
치타는 빠르다 = Cheetah is fast
치타는 느리다 = Cheetah is slow (This would be a wrong statement)
However, if you visited a zoo and saw a cheetah who seems to move very slowly, you might say,
치타가 느리다 = (That) cheetah is slow
So the identifier particle, 가/이, indicates a certain person or thing that the speaker and listener know or are aware of. In this case, it would be that cheetah in the zoo.
Here is another example,
바다는 푸르다 = The sea is blue
바다는 까맣다 = The sea is black (In general, this is a wrong statement.)
But say, you saw the sea at night and you may exclaim,
바다가 까맣다! = The sea is black!