Instead of 31, let's investigate the smallest numbers first and work our way up.
2 stones: WIN
3 stones: LOSE
4 stones: Split into 1 and 3 – WIN
5 stones: Split into 2 and 3 – WIN
6 stones: Split into 3 and 3 – WIN
7 stones: If split into 1 and 6, Vitya splits 6-pile into 3, 3; if into 2 and 5, Vitya splits into 1, 1 and 2, 3; if into 3 and 4, Vitya splits into 1, 2 and 1, 3 – in this case, LOSE
8 stones: Split into 1 and 7 – WIN
9 stones: Split into 2 and 7 – WIN
10 stones: Split into 3 and 7 – WIN
11 stones: Split into 4 and 7 – WIN
Note that in the last case,, although 4 wins and 7 loses for Vitya, more moves would be needed to clear the pile of 7 than the pile of 4; hence Vitya can never win when presented with piles of 4 and 7. (A pile of 7 takes four moves to be turned into seven 1-stone piles given that the first mover loses.) The same argument applies to the next two cases.
12 stones: Split into 5 and 7 – WIN
13 stones: Split into 6 and 7 – WIN
14 stones: Split into 7 and 7 – WIN
15 stones: LOSE
If Kolya splits into 8 and 7, Vitya will just split the pile of 8 into 1 and 7. Any other split will not be any better for Kolya: there will always be a lesser pile with more than 7 stones and the other with at most 7 stones, therefore Vitya can always make sure Kolya gets a pile with exactly 7 stones and so loses.
And so the answer to the original question: Can Kolya always win with 31 stones starting first? The answer is
NO – it is Vitya who will always win. No matter how Kolya splits the original pile, there will always be a lesser pile with more than 15 stones and the other with at most 15 stones: Vitya can therefore always ensure that Kolya will get a pile of exactly 15 stones and lose.