First of all, the question asks for the least number which the proportion is exactly 99%. Your code finds the first number that the proportion is more or equal to 99%. That is not quite right. Also, comparing floating-numbers is inaccurate and you should change it to integer comparision for exactness: bou * 100 == total * 99
Secondly, in the bouncy function, list(str(N)) is repeated three times unnecessarily. The twice sort calls are also unnecessary. It can be improved as follows
def bouncy(Nn):
number = [*str(Nn)]
n1sorted_n = sorted(number)
return n1sorted_n != number and n1[sorted_n[::-1] != number
Thirdly, the overall algorithm is a naive one. If you need a better performance, a better approach is needed, e.g. by exploiting the fact that if \$n\$ is a bouncy number, then \$10n+b\$ for any \$b\in[0,9]\$ is also a bouncy number and does not need to be checked again.