Это происходит потому, что ваш код на самом деле выглядит так с удаленными ненужными переменными:
import os
counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'
if not os.path.exists(mypath):
os.makedirs(mypath)
print ("Path is created")
while os.path.exists(mypath):
counter += 1
mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
print(mypath)
os.makedirs(mypath)
Как вы видите, папка 'request1' создается при первом запуске программы, затем переходит к функции обычно. Это легко исправить, просто удалите первый оператор if:
import os
counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'
while os.path.exists(mypath):
counter += 1
mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
print(mypath)
os.makedirs(mypath)
Я бы убрал лишние скобки, чтобы улучшить читаемость, и использовал бы f-строки, если вы можете, например, mypath = f'C:/Users/jh/Desktop/request{counter}/'