Function with passing a char variable and return of a logical variable

while ((!Serial & millis()< 5000))

Should be &&

bool PING(Host_001);

You didn't say what your sketch did output, but I'm guessing "o.k.". You are using a (non-zero) pointer value to initialise a variable PING of type bool. The variable PING with therefore always be true.

something like bool mypingresult = PING(Host_001); might be closer to what you want.

bool PING(char Host) {

The parameter doesn't have the correct pointer type.