The answer is, whenever you need a low-value, you use it. Whenever you need a high-value, you use it. Etc.
The advantage of a low-value is that, in data that is sequenced/keyed, there is nothing before it. The advantage of a high-value is that there is nothing after it.
Particular uses of these facts are many, perhaps infinite
A couple of examples.
If you want to access a VSAM KSDS dataset with a "partial" key, you give it the left-most/high-order part of the key that you know and set the rest of the key to low-values. You know then that you will get the reference for the first data that matches the high-order part of the key. If you had set it to spaces, you might have a problem if the first unknown part of the key contains non-character data (a packed or binary number for instance). You won't often come across that in keys, but I always set to low-values so that I don't have to wonder about whether spaces will work in this particular instance, or that the code will still work if the key definition changes, or if the code is copied to another program in which it then wouldn't work etc.
If there is a table that you want to use SEARCH on, it can be useful to initialise the tabel to high-values so that you will know when you have reached the end of the data in the table. I'd use high-values so that if someone changes to a SEARCH ALL the initialise does not need to change even if the person making the change does not make the table variable-length with OCCURS DEPENDING ON.
In any sequence checking, you can use low-values to show that nothing has yet been put in a saved key and high-values to indicate that there is no more data for the set that you are working with. The saved keys can "double-up" as FIRST-TIME and END-OF-FILE indicators, for instance.
If you have a table which you are storing data in, but part of that table can validly contain space, if you have initilised to high-values you will know when you see space there that it is data, not just the initital value.
The important thing to bear in mind is that low-values (x'00') is the lowest byte value you can get and high-values (x'FF') is the highest. These values can not be entered directly from a keyboard. You can use them in any situation where there properties are useful to you.