The content is defined in GS1's General Specifications: https://www.gs1.org/standards/barcodes-epcrfid-id-keys/gs1-g... . Basically, it's a set of key/value pairs, where the keys (known as Application Identifiers) are 2-4 digits. The values for some of the early well-known Application IDs are a fixed length. Others are variable-length, separated by a marker character. In GS1-128 this is the FNC1 symbol, which isn't directly an encoding of an ASCII character, but is usually reported by the scanner as ASCII 29 (Group Separator). Any newly-added Application Identifiers now have to be terminated with the separator so that older software can skip over Application Identifiers that it doesn't recognise.
For retail, the core Application Identifier is AI 01, the Global Trade Item Number. This is just the 12-digit UPC-A, 13-digit EAN-13 or 8-digit EAN-8, zero-filled to 14 digits. There are 14-digit GTIN-14s, I'm not 100% sure on how they're allocated, I've never seen them in general retail.
The additional power of GS1 codes is that they can contain things like the weight of an item that's sold by weight, and/or the best before or expiry dates, and/or batch numbers. You just concatenate the appropriate Application Identifier and the value (plus separator if required).
For GS1-128, there's a practical limit of around 50 characters before the barcode gets too long to be readable. (Though note that there's a sub-mode of Code 128, Code Set C, that encodes two digits in one 'module', the space that one letter takes up in Code Set A or B.) That's probably why it hasn't really taken off. For greater amounts of data, you want to use DataMatrix or QR. Or GS1's previous suggested retail symbology, GS1 DataBar, previously known as Reduced Space Symbology (RSS).
The problem as always is chicken-and-egg. Retailers won't support a new symbology if there isn't a critical mass of products that use it; manufacturers won't support a new symbology if not all retailers can process it. GS1 DataBar has had limited take-up for products that need a very small barcode, e.g. individually labelling fresh fruit or veggies that are sold by the unit.
QR Code does have the advantage that it's easier to read by imaging software than UPC-A or EAN-13, due to the targeting patterns in the corners. That could increase the speed of scanning items.