yes. Serial print does not know what you mean and decide to show a character with ASCII numbers 1 2 ...
to force print showing value as decimal number:
Well, your suggestion works fine but it doesn't respond well with a library that I use, so I found out this way that works. I'll post it for anyone looking something like this.
int a = 1;
int b = 9;
int c = 9;
int d = 7;
char PIN[5];
snprintf(PIN, 5, "%d%d%d%d", a, b, c, d);
Serial.print("pin: ");
Serial.print(PIN);