There are many standardized key derivation functions designed specifically for this purpose. It would generally be better to use one of those rather than rolling your own. For example, HKDF (RFC 5869) should work nicely for your purposes, and it's versatile enough to let you also derive any other key material you might need (e.g. for message authentication) from the same master key(s).
That said, I see no obvious problems with either of your suggestions. One potential drawback of simply splitting the key into two parts and concatenating them is that the parts must, necessarily, be shorter than the full key. This could be an issue for ciphers with short key lengths, if one of the key parts was compromised, but it shouldn't be a problem if you use a cipher with a key at least 256 bits long, such as AES-256. In any case, you could avoid this issue entirely by XORing the key parts instead of concatenating them (or, more generally, by using a secret sharing scheme).