No. You only can have a dynamic value for the expression but not for the unit keywords on intervals. Unit keywords can be SECOND, DAY_MICROSECOND, etc..
Concatenation of these unit names will result a string expression and can't be evaluated as an interval value.
Hence you can't use place holders (prepared statement) to achieve this.
Alternatively you can generate the query by concatenating partial strings, in your programming language.
String part1 = "SELECT DATE_ADD(some_date, INTERVAL some_number ";
String part2 = "WEEK"; // say as default value
if( my_condition_1_is_satisfied ) then part2 = "DAY"
else if( my_condition_2_is_satisfied ) then part2 = "MONTH"
else ...
// then concatenate part1 and part 2
String sql = part1 + part2;
// now your query string is ready to use
Refer to: DATE_ADD(date,INTERVAL expr unit)