Note that a null input to a getstring prompt returns an empty string ""
A few more things:
(setq[color=green] PipeOD 25.0[/color]) [color=green];; These are Reals, hence need to be converted to a string before used with 'strcat'[/color]
(setq [color=green]PipeID 20.0[/color])
(setq TakeAction (getstring "Change Pipe ID? Yes or <No>: "))
; If the user presses the enter key without any other input, then do something:
(if [color=blue](not TakeAction) ;; As above, this will never return T. Also, as you have used getstring, Yes or No will both return a non-nil value[/color]
(progn
[color=red](setq PipeID (getstring "Enter Pipe ID: ")) ;; Why are you prompting to Change the Pipe ID if the user has pressed enter for 'No'?[/color]
(setq Pipe[color=red]THCIK[/color] (/ (- PipeOD PipeID) 2.0))
)
(prompt (strcat "Pipe OD = " [color=green]PipeOD[/color] "mm, " "Pipe ID = " [color=green]PipeID[/color] "mm & " Pipe[color=red]THICK[/color] "mm."))
[color=red] ;; But the PipeTHICK variable will not exist at this point since it is calculated in the 'then' statement[/color]
)