ㄴ/는/ㄹ 일이 없다/있다
You are correct on the first two points. The third one needs more clarification.
As you guessed, 적 is only used for the past and the present, never for things yet to come.
일 and 적 (and also 때 which is similar) have different connotations and nuances.
* 일 (matter, event, situation) - consequential and publicly known actions or occurrences.
* 적 (experience, happening) - what might have happened or might happen to a person or thing.
* 때 (time, occasion) - what regularly happens or might happen, both personal and impersonal.
일 signifies important matters, be it something that already happened or to come in the future.
As 일 also means "something to be done" (work, task), its usage can diverge far from those of 적 or 때.
The -던 일이 있다 form is used ("그 시절 자주 일어나던 일이 있었다"), but much less frequently than -던 적 or -던 때.
적 and 때 are used similarly in the past and the present tense. but 적 works better for the past and 때 for the present.
Overall, 일 and 적 have certain overlapping usages, but they are fundamentally quite different.
Examples:
- 친구는 중학교 떄 불행한 일이 있었다. ( 불행한 일 = a bad incident. 불행한 적/때 = an unhappy time in his life)
- 친구는 중학교 때 병원에 입원한 적이 있다. (specific experience. 적 is the best)
- 이 개는 가끔 이유없이 짖는 일이 있어. (okay, but not the best since it's an unimportant, specific thing)
- 이 개는 가끔 이유없이 짖을[짖는] 때가 있어. (more natural)
- 이 개는 가끔 이유없이 짖을[짖는] 적이 있어. (similar)
* Since 일 has the notion of "things to do" or "what may come", 짖을 일 has the connotation of a future possibility.
* 때 and 적 connotes an occasion or a point in time, so 짖을 때/적 means "such a time as it barks", in the present.
- 내가 살아있는 한 그럴 일은 없을 게다. (only 일 is possible)
- 내년엔 어려운 일이 많를 것이다. (similar)
- 내 친구는 수업에 늦는 일이[적이, 때가, or 법이] 없다 (My friend is never late for the class - a pattern or principle)
- 내 친구는 수업에 늦을 일이 없다 (DIFFERENT MEANING - There is no reason for my friend to be late for the class).