It's for translations. XSTR() is just a macro/function that says: "Blah blah" is a string I want to show, and 1234 is the translation reference for it. If the reference is -1 then it juse uses the "Blah blah" string itself. If it's 0 or greater then it looks in tstrings.tbl for that reference number for the language currently in use and uses that string instead.
So basically all that XSTR("Blah blah", 1234) is doing is telling the game to look in tstrings.tbl and grab the translated line numbered 1234. The "Blah blah" in such a case is ignored and it will use what is in the table, the text in the XSTR() line being just for your reference. It can get somewhat confusing if reference line 1234 in the table is actually "Hello, my name is Inigo Montoya. You killed my father. Prepare to die." since that's what it would actually show in the game rather than the "Blah blah" which you might otherwise expect.
When you have XSTR("Blah blah", -1) though it's not going to look in the table and instead just give you the text in the XSTR() line, "Blah blah" in this case. That wouldn't help people who don't speak English though.