(Warning: this answer is skewed towards static applications - dynamic applications like the self-weight of a moving cable or a vehicle are much more complicated.) In actual applications, self weight is usually significant and it's fairly rare that you can neglect it for a real-world system. However, there are a number of ways to address self-weight with varying degrees of accuracy depending on the situation.
There are only a few applications where self-weight can be written off completely as insignificant based on engineering judgement. These would be situations where the self weight is a very small portion of the total weight. One example that comes to mind would be an item hung from wire rope. The weight of the wire rope may well be 5 lbs for a load of 5,000 lbs. I would be comfortable ignoring self weight in that scenario.
The main reason that in academic exercises, it's tempting to ignore self-weight, is that it adds an iterative step to design. You size a beam for example to meet a loading requirement (and if you're clever, an estimate for the self-weight) but then once you pick the beam and know the true self-weight, you have to re-evaluate the structure. This is a cumbersome process, and especially when working towards a specific right answer as in a textbook problem, it can take many iterations to find the perfect beam.
When checking a design, it is necessary to validate it against your acceptance criteria (probably dictated by relevant codes) including the self-weight, but that doesn't mean that you have to follow this iterative process throughout the entire design. One option is to add an estimate of your self-weight to the other downward loads you are designing for, and process the entire design based on that increased loading criteria. Then at the end, you would add in the appropriate gravity loads, and return your other loads to their proper values for final checks. Because self-weight acts on specific members, rather than spread out evenly, it's important that your initial estimate is conservative. This method saves a lot of time when manually calculating things, but only if your self-weight estimate was conservative enough. If you can't afford to be modestly conservative in your design, then it's likely that your design won't pass the final checks.
In the era of computer-based structural modeling, of course, each iteration is nearly free, so there is little advantage to adding this extra step. Further complicating the discussion is the fact that when seismic loading governs, it is also influenced by the dead weight, so there is a second-order effect of any approximation.
So the short answer to your question is: it is almost never OK to completely ignore self-weight, but there are some tricks to reduce it's impact on the design process.