Most of the time I'm not been listened to and should have been, I feel like it is out of apathy or laziness, not out of whether the argument was sufficiently strong. My request "this will not work for X reasons" is almost always followed by "and Y is what we need to do", but Y implies … additional work.
The culture of current corporate workplaces are especially insidious for the original person ever learning anything. The additional work implies a scope change, or tickets slipping into the next sprint, which is implicitly frowned upon. You're supposed to be a team player, so when something does — as predicted — break, you fix it (not the original person) as it now needs to get done, and the company doesn't really care who or how the job gets done so long as it is done. (Or, even, the breakage is in your area of expertise, and even more knowledge — and work — is required to fix it than to have avoided it in the first place, enough so that now you're the one who must take care of it.) But, what has the original person learned? Half the time, even if gently prodded, "Hey $coworker, I've taken care of Y here to fix the Z breakage." is just left unresponded to in chat. Did they read it? Who knows. In person is usually just a "Oh, okay." But do they understand that this is what they were warned about, and that it has cost me time, which causes me to be stressed and frustrated? Who knows. (And all the "emotional intelligence" stuff suggests that one must simply suppress that stress & frustration, as emotion has no place in the workplace.)
But… I do agree that outright saying "I told you so", IME, rarely results in a positive impact. But, I'm not sure what does.