Через QVariant этого сделать нельзя. Если бы вы читали документацию то подобного вопроса не возникло.
QBitArray QVariant::toBitArray () const
Returns the variant as a QBitArray if the variant has type() BitArray; otherwise returns an empty bit array.
На счет как сделать из qint8 QBitArray. Можно так:
qint8 i8 = 0x24;
const int bits = sizeof(i8) * 8;
QBitArray arr(bits);
for (int i = 0; i < bits;++i)
if ((i8 >> i) & 1)
arr.setBit(i);