Algo como isso deve ser feito, se você executá-lo no (s) arquivo (s) após ter executado a primeira substituição que introduz o erro:
sed 's/X(\([^,]*\),)/X()/g'
Ele substituirá X(<something-not-a-comma>,)
por X(<something-not-a-comma>)
.
Para fazer as duas substituições de uma só vez:
sed -e 'the first substitution' -e 'the second substitution'